<?php

include_once 'SPDO.php';

  switch($_GET['fonction'])
  {
    case "menu" :
      menuJSON();
      break;

    case "formulaire" :
      formulaireJSON($_GET['lieu']);
      break;

    case "update" :
      update($_GET['id'], $_GET['type'], $_GET['valeur']);
      break;
  }

//id : correspond a l'id de l'objet
//type : correspond au type d'objet (chauffage, arrosage)
//valeur :: correspond a la nouvelle valeur de l'objet
  function update($id, $type, $valeur) 
  {
    //instanciation d'un objet de classe 'type' avec la valeur initial de l'objet (celle contenu dans la BdD)
    //ex : $obj = new Chauffage($id, VAR) VAR = la valeur contenu dans la BdD
    //utilisation des methodes de la classe pour inserer la nouvelle valeur dans la classe
    //ex : $obj->setTemp($valeur)
    //si echec de la modification
      //on envoie au client un objet (format JSON) [{"err": "un message d'erreur pour indiquer au client le probleme", "type":???, "id":???, "valeur":???, "etat":???}]
    //sinon
      //on envoie au client un objet (format JSON) [{"err": "modifOK", "type":???, "id":???, "valeur":???, "etat":???}]
    $tar = '[{"id" : "'. $id .'", "valeur": "'. $valeur .'"}]';
    echo $tar;
  }

  function menuJSON()     //Appel a la base de données pour remplir le menu
  {      
          try
          {
                  $menu = '[';
                 
                  $recupPiece = SPDO::pdo()->query("SELECT Nom_Piece FROM Piece");
                 
                  while($result = $recupPiece->fetch(PDO::FETCH_OBJ))
                  {
                          $menu .= '{"lieu": "' .$result->Nom_Piece. '"},';
                  }
                 
                  $recupPiece->closeCursor();
                 
                  $menu .= ']';
          }
          catch(PDOException $e)
          {
                  $recupPiece->rollBack();
                  die($e->getMessage());
          }

    echo $menu;
  }

  function formulaireJSON($lieu)//Appel a la base de données pour remplir les objets disponibles a un emplacement ($lieu)
  {    
        try
        {
		$lieu = str_replace(' ', '_', $lieu); // remplace les espaces dans la chaine de caractere $lieu par underscore
                $objet = '[{"lieu": "' .$lieu. '"},';
               
                $recupObjChauffage = SPDO::pdo()->prepare("SELECT * FROM Chauffage, Piece WHERE Chauffage.ID_Piece = Piece.ID_Piece AND Piece.Nom_Piece = :nom");
                $recupObjChauffage->execute(array('nom' => $lieu));
               
                while ($result = $recupObjChauffage->fetch(PDO::FETCH_OBJ))
                {
                        $objet .= '{"type": "chauffage", "id": "' .$result->ID_Chauffage. '", "etat": "' .$result->Etat. '", "valeur": "' .$result->Temperature. '"}';
                }
               
                $recupObjStore = SPDO::pdo()->prepare("SELECT * FROM Stores, Piece WHERE Piece.Nom_Piece = :nom AND Stores.ID_Piece = Piece.ID_Piece");
                $recupObjStore->execute(array('nom' => $lieu));
               
                while ($result = $recupObjStore->fetch(PDO::FETCH_OBJ))
                {
                        $objet .= ',{"type": "stores", "id": "' .$result->ID_Stores. '", "etat": "' .$result->Position. '"}';
                }
               
                $objet .= ']';
        }
        catch (PDOException $e)
        {
                die ($e->getMessage());
        }
       
        echo $objet;
       
    // pour creer notre JSON utiliser la meme methode que dans la fonction menuJSON
   
    /*if($lieu == "maison")
    {
      $objets = '[{"lieu": "' . $lieu . '"}, {"type": "eclairage", "id": "ecl_055", "etat": "1", "valeur": "6"}, {"type": "stores", "id": "sto_0122", "etat": "0", "valeur": "19", "Hmax": "150"}]';
    }
    else
    {
      $objets = '[{"lieu": "' . $lieu . '"}, {"type": "eclairage", "id": "ecl_05", "etat": "0", "valeur": "7"}, {"type": "chauffage", "id": "cha_0132", "etat": "0", "valeur": "19"}]';
    }
    echo $objets;*/
  }

?>
